Telephony users have long had to deal with a proliferation of user devices (sometimes referred to as ‘user equipment’ or ‘endpoints’) through which third parties may contact them. For example, a user might have a fixed-line (or ‘wireline’) user device for use at home, a further fixed-line telephony user device for use in the office, and a mobile user device for use whilst on the move. Each type of user device has associated advantages; whilst a mobile user device provides the user with mobility, a fixed-line user device typically provides more reliable and higher quality communications and no battery recharge concerns.
Users may also have a number of different access technologies available through which their user devices may conduct communications. For example, a user device may be equipped with a circuit-switched communication interface and one or more circuit-switched communication clients for conducting communications via suitable circuit-switched networks. Likewise, a user device may also/alternatively be equipped with a packet-switched communication interface and one or more packet-switched communication clients for communicating via suitable packet-switched networks.
A circuit-switched user device may comprise a fixed-line Plain Old Telephone Service (POTS) telephone equipped with a circuit-switched interface and communication client for conducting communications via a Public Switched Telephone Network (PSTN). A circuit-switched user device may comprise a mobile (or ‘cellular’) telephone equipped with a wireless circuit-switched interface and communication client for conducting communications via a cellular network such as a Global System for Mobile Communications (GSM) network or Code Division Multiple Access (CDMA) network.
More recently, packet-switched user devices have proliferated which may take the form of a fixed-line Internet Protocol (IP) telephone equipped with a fixed-line packet-switched interface and communication client for communicating via an IP network, such as the internet or an IP Private Branch Exchange (IP-PBX). Similarly, a user may conduct communications via a personal computer (PC) equipped with a packet-switched communication client for conducting communications over the internet via a fixed-line internet connection. A mobile packet-switched telephony device may take the form of a portable computing device, such as a laptop or tablet, equipped with a wireless packet-switched interface and communication client for communicating via an IP network, such as the internet, using a Wi-Fi™ or Bluetooth™ compliant wireless access point. A packet-switched communication client may conduct communications according to an internet telephony protocol, commonly referred to as Voice over Internet Protocol (VoIP), with associated setup and control protocols such as the Session Initiation Protocol (SIP) or H.323.
When a user is conducting a call on a user device, the user may wish to ‘jump’ or ‘switch’ the call to another user device. Call jump is generally accepted to be a distinct service to call transfer. Call transfer is used to transfer a call to a different user, whereas call jump moves the call to another device owned by the same user, so the two services involve a different user experience. For example, during a call transfer the remote call party is either placed on hold or hears a ring-back tone while the transfer recipient's phone rings. In contrast, a call jump service attempts to minimize the disruption to the call as perceived by the remote party, so the remote party is not placed on hold and does not hear any call progress tones.
Some known call jump systems employ a call ‘push’ technique where a user initiates the call jump from within a call they are currently conducting on one of their user devices. Some such known techniques require a user firstly to enter in a number of digits on their device for activating the call jump, for example entering digits of a ‘star code’, and optionally entering in digits identifying the device the call is to be pushed to. Other known call jump systems employ a call ‘pull’ technique where a user invokes the call jump from a user device other than the user device currently being used to conduct the call, and similarly may require a user to enter in a number of digits on the other device for activating the call jump and entering in digits identifying the device the call is to be pulled from.
Known call jump implementations work by inserting a server such as an application server, in the signalling path of a communication session, using an in-band (for example Dual-Tone Multi-Frequency (DTMF) or Session Initiation Protocol (SIP) INFO messages) or out-of-band (such as Hypertext Transfer Protocol (HTTP)) signalling channel between clients and this server to control the service. In such implementations, logic to drive the appropriate signalling flows for communication session jump operations such as call push or call pull is implemented in the server. An implementation using in-band signalling can only support call push, but those using out-of-band signalling can support both push and pull operations.
Such server-based call jump implementations can suffer from significant cost and reliability downsides.
It would therefore be desirable to provide improved call jump services.